﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SuperStarProject.Models;
using SuperStarProject.DAO;
namespace SuperStarProject.Controllers
{
    public class PhieuMuaHangController : Controller
    {
        //
        // GET: /PhieuMuaHang/

        public ActionResult Index()
        {
            return View();
        }
        [HttpGet]
        public ActionResult Create()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Create(PhieuMuaHangModel model)
        {
            PhieuMuaHangDAO.Create(model);
            return RedirectToAction("CreateDSQuaTang", "PhieuChonQuaTang", new { maPhieuMuaHang = model.MaPhieuMuaHang});
        }
        public ActionResult ShowAllPhieuMuaHangDaiLy(string madaily,string tinhtranggiao)
        {
            
            if (tinhtranggiao == "1")// Da dat mua
            {
                var lstitem = PhieuMuaHangDAO.ShowAllMyPhieuMuaHangDaiLy(madaily,"Đã Đặt Mua");
                return View(lstitem);
            }
            if (tinhtranggiao == "2")// HoanTat
            {
                var lstitem = PhieuMuaHangDAO.ShowAllMyPhieuMuaHangDaiLy(madaily, "Hoàn Tất");
                return View(lstitem);
            }
            if (tinhtranggiao == "3")// Có thể đến nhận hàng
            {
                var lstitem = PhieuMuaHangDAO.ShowAllMyPhieuMuaHangDaiLy(madaily, "Nhận Hàng");
                return View(lstitem);
            }
            if (tinhtranggiao == "4")// Đã nhận hàng
            {
                var lstitem = PhieuMuaHangDAO.ShowAllMyPhieuMuaHangDaiLy(madaily, "Đã Nhận Hàng");
                return View(lstitem);
            }
            if (tinhtranggiao == "5")// không nhận hàng
            {
                var lstitem = PhieuMuaHangDAO.ShowAllMyPhieuMuaHangDaiLy(madaily, "Chưa Nhận Hàng");
                return View(lstitem);
            }
            else
            {
                List<PhieuMuaHangModel> lstitem = new List<PhieuMuaHangModel>();
                return View(lstitem);
            }
        }
        public ActionResult ChangeState(string maphieumuahang, string state)
        {
            try
            {
                var lstitem = PhieuMuaHangDAO.GetDetails(maphieumuahang);
                // Kiểm tra.

                //
                if (state == "1")// Chuyển sang chế độ Da dat mua
                {
                    lstitem.TinhTrangGiao = "Đã Đặt Mua";
                    PhieuMuaHangDAO.ChangeState(lstitem.MaPhieuMuaHang, lstitem.TinhTrangGiao);
                }
                if (state == "2")// Chuyển sang chế độ Hoàn tất
                {
                    lstitem.TinhTrangGiao = "Hoàn Tất";
                    PhieuMuaHangDAO.ChangeState(lstitem.MaPhieuMuaHang, lstitem.TinhTrangGiao);
                }
                if (state == "3")// Chuyển sang chế độ Đã nhận hàng
                {
                    lstitem.TinhTrangGiao = "Nhận Hàng";
                    PhieuMuaHangDAO.ChangeState(lstitem.MaPhieuMuaHang, lstitem.TinhTrangGiao);
                }
                if (state == "4")// Chuyển sang chế độ Da dat mua
                {
                    lstitem.TinhTrangGiao = "Đã Nhận Hàng";
                    PhieuMuaHangDAO.ChangeStateWithNgayNhan(lstitem.MaPhieuMuaHang);

                }
                if (state == "5")// Chuyển sang chế độ Đã nhận hàng
                {
                    lstitem.TinhTrangGiao = "Chưa Nhận Hàng";
                    PhieuMuaHangDAO.ChangeState(lstitem.MaPhieuMuaHang, lstitem.TinhTrangGiao);
                }
                return RedirectToAction("IndexDaiLy", "Home");
            }
            catch (Exception ex)
            {
                return RedirectToAction("ShowAllPhieuMuaHangDaiLy");
            }
        }
        [HandleError]
        public ActionResult ShowAllMyPhieuMuaHang()
        {
            var lstitem = PhieuMuaHangDAO.ShowAllMyPhieuMuaHang(User.Identity.Name);
            return View(lstitem);
        }

        public ActionResult ViewDetails(string maphieumuahang)
        {
            try
            {
                var lstitem = PhieuMuaHangDAO.GetDetails(maphieumuahang);
                var deadline = ProductDAO.ViewDetails(lstitem.MaSP);
                if (deadline.TGKetThucBan < DateTime.Now)
                    ViewData["CanEdit"] = "0";
                else
                    ViewData["CanEdit"] = "1";
                return View(lstitem);
            }
            catch (Exception ex)
            {
                ViewData["Message"] = ex.Message;
                return RedirectToAction("Error", "Home", new { mess = "Không tìm thấy phiếu mua hàng của bạn chọn" });
            }
        }
        public ActionResult Delete(string maphieumuahang)
        {
            var lstitem = PhieuMuaHangDAO.GetDetails(maphieumuahang);
            if (lstitem.MaKH == User.Identity.Name) // And Admin QL
            {
                PhieuMuaHangDAO.Delete(lstitem);
            }
            return RedirectToAction("ShowAllMyPhieuMuaHang");
        }
        [HttpGet]
        public ActionResult Edit(string maphieumuahang)
        {
            try
            {
                var lstitem = PhieuMuaHangDAO.GetDetails(maphieumuahang);
                if(User.Identity.Name != lstitem.MaKH)
                    return RedirectToAction("Error", "Home", new { mess = "Bạn không có quyền chỉnh sửa phiếu mua hàng này" });
                return View(lstitem);
            }
            catch (Exception ex)
            {
                ViewData["Message"] = ex.Message;
                return RedirectToAction("Error", "Home", new { mess = "Không tìm thấy phiếu mua hàng bạn vừa nhập" });
            }
        }
        [HttpPost]
        public ActionResult Edit(PhieuMuaHangModel model)
        {
            PhieuMuaHangDAO.Edit(model);
            return RedirectToAction("CreateDSQuaTang", "PhieuChonQuaTang", new { maPhieuMuaHang = model.MaPhieuMuaHang });
        }
    }
}
